package com.logisticsmanagement.core;

import java.io.IOException;
import java.util.ArrayList;

import com.logisticsmanagement.dao.RouteDao;
import com.logisticsmanagement.domain.Route;

public class Test {

	public static void main(String args[]) throws IOException {
		
		for (int i = 0; i < 34; i++) {
			for (int j = 0; j < 34; j++) {
				TransportPayment tp = new TransportPayment(i, j);
				Route route = new Route();
				RouteDao routeDao = new RouteDao();
				
				route.setStartCityID(tp.getStartCityID());
				route.setEndCityID(tp.getEndCityID());
				route.setNextCityID(tp.getNextCityID());
				route.setPricePerKG(tp.getPrice());
				
				routeDao.add(route);
			}
		}
		
//注释代码为对初始数据的一些操作
//		ArrayList<CityXY> cityList = new ArrayList<CityXY>();
//		ArrayList<Route> routeList = new ArrayList<Route>();
//		CityXY city = new CityXY();
//		Route route = new Route();
//		BufferedReader cityBR = new BufferedReader(new FileReader("cityXY.txt"));
//		BufferedReader routeBR = new BufferedReader(new FileReader("route.txt"));
//		BufferedWriter bw = new BufferedWriter(new FileWriter("write.txt"));
//		String s = null;
//		while (true) {
//			s = cityBR.readLine();
//			if (s != null) {
//				city = new Test().exchange(s);
//				cityList.add(city);
//			} else {
//				break;
//			}
//		}
//
//		while (true) {
//			s = routeBR.readLine();
//			if (s != null) {
//				route = new Test().exchangeRoute(s, cityList);
//				routeList.add(route);
//			} else {
//				break;
//			}
//		}
//
//		for (int i = 0; i < routeList.size(); i++) {
//			getWeight(routeList.get(i), cityList);
//			// System.out.println(routeList.get(i).getPreviousNode());
//			// System.out.println(routeList.get(i).getNextNode());
//			// System.out.println(routeList.get(i).getWeight());
//			// bw.write(routeList.get(i).getPreviousNode() + " ");
//			// bw.write(routeList.get(i).getNextNode() + " ");
//			bw.write(routeList.get(i).getPreviousNodeId() + " ");// 上一站城市编号写入文件
//			bw.write(routeList.get(i).getNextNodeId() + " ");//下一站城市编号写入文件
//			bw.write("" + routeList.get(i).getWeight());// 路径权重写入文件
//			if (i != routeList.size() - 1)
//				bw.write("\r\n");
//		}
//		bw.flush();		
	}

//	/**
//	 * 
//	 * @param route
//	 * @param cityList
//	 */
//	public static void getWeight(RouteInfo route, ArrayList<CityXY> cityList) {
//		CityXY previousCity = new CityXY();
//		CityXY nextCity = new CityXY();
//		for (CityXY temp : cityList) {
//			if (temp.getCity().equals(route.getPreviousNode())) {
//				previousCity.setCity(temp.getCity());
//				previousCity.setCityId(temp.getCityId());
//				previousCity.setX(temp.getX());
//				previousCity.setY(temp.getY());
//			}
//			if (temp.getCity().equals(route.getNextNode())) {
//				nextCity.setCity(temp.getCity());
//				nextCity.setCityId(temp.getCityId());
//				nextCity.setX(temp.getX());
//				nextCity.setY(temp.getY());
//			}
//		}
//		double distance = getDistance(previousCity, nextCity);
//		distance = distance / 1000;//// 将权重数值整体变小
//		route.setWeight(distance);
//	}

//	/**
//	 * 
//	 * 
//	 * @param city1
//	 * @param city2
//	 * @return
//	 */
//	public static double getDistance(CityXY city1, CityXY city2) {
//		double distance = getDistanceOfMeter(city1.getX(), city1.getY(), city2.getX(),
//				city2.getY());
//		return distance;
//	}
//
//	/**
//	 * http://www.open-open.com/lib/view/open1381390940486.html
//	 * 
//	 * @param lat1
//	 * @param lng1
//	 * @param lat2
//	 * @param lng2
//	 * @return
//	 */
//	public static double getDistanceOfMeter(double lat1, double lng1,
//			double lat2, double lng2) {
//		double radLat1 = rad(lat1);
//		double radLat2 = rad(lat2);
//		double a = radLat1 - radLat2;
//		double b = rad(lng1) - rad(lng2);
//		double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)
//				+ Math.cos(radLat1) * Math.cos(radLat2)
//				* Math.pow(Math.sin(b / 2), 2)));
//		s = s * EARTH_RADIUS;
//		s = Math.round(s * 10000) / 10;
//		return s;
//	}
//
//	private static double rad(double d) {
//		return d * Math.PI / 180.0;
//	}
//
//	private static double EARTH_RADIUS = 6378.137;
//
//	/**
//	 * 
//	 * 
//	 * @param s
//	 * @return
//	 */
//	public static RouteInfo exchangeRoute(String s, ArrayList<CityXY> cityList) {
//		RouteInfo route = new RouteInfo();
//		String[] result = s.split(" ");
//		int i = 0, j = 0;
//		for (i = 0; i < result.length; i++) {
//			String temp = result[i];
//			if (i == 0) {
//				//  取出的城市名和cityList（城市表）相同的cityId
//				route.setNextNode(temp);
//				while (true) {
//					if (temp.equals(cityList.get(j).getCity())) {
//						route.setPreviousNodeId(cityList.get(j).getCityId());
//						j = 0;
//						break;
//					}
//					j++;
//				}
//
//			} else if (i == 1) {
//				route.setNextNode(temp);
//				while (true) {
//					if (temp.equals(cityList.get(j).getCity())) {
//						route.setNextNodeId((cityList.get(j).getCityId()));
//						break;
//					}
//					j++;
//				}
//			}
//		}
//		return route;
//	}
//
//	/**
//	 * 
//	 * 
//	 * @param s
//	 * @return
//	 */
//	public static CityXY exchange(String s) {
//		CityXY city = new CityXY();
//		String[] result = s.split(" ");
//		int i = 0;
//		for (i = 0; i < result.length; i++) {
//			String temp = result[i];
//			if (i == 0) {
//				city.setCityId(Integer.parseInt(temp));
//			} else if (i == 1) {
//				city.setCity(temp);
//			} else if (i == 2) {
//				city.setX(Double.valueOf(temp));
//			} else {
//				city.setY(Double.valueOf(temp));
//			}
//		}
//		return city;
//	}
};
